package com.ym.soso.domain.param;

import com.ym.common.constant.BeanCovert;
import com.ym.soso.domain.entity.PensionInfoEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.Date;

import static com.ym.common.constant.ValidRule.Add;
import static com.ym.common.constant.ValidRule.Update;

/**
 * 养老对象 pension_info
 *
 * @author ym
 * @date 2020-09-02
 */
@ApiModel("养老-修改")
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
public class PensionInfoUpdateParam extends BeanCovert<PensionInfoEntity>{

    @ApiModelProperty("主键")
    @NotNull(message = "主键不能为空", groups = {Add.class, Update.class})
    private Long id;

    @ApiModelProperty("编码")
    @NotEmpty(message = "编码不能为空", groups = {Add.class, Update.class})
    @Size(max = 200, message = "编码长度超过{max}", groups = {Add.class, Update.class})
    private String theCode;

    @ApiModelProperty("名称")
    @NotEmpty(message = "名称不能为空", groups = {Add.class, Update.class})
    @Size(max = 200, message = "名称长度超过{max}", groups = {Add.class, Update.class})
    private String theName;

    @ApiModelProperty("介绍")
    private String introduction;

    @ApiModelProperty("icon图")
    @Size(max = 200, message = "icon图长度超过{max}", groups = {Add.class, Update.class})
    private String icon;

    @ApiModelProperty("营业时间")
    @Size(max = 200, message = "营业时间长度超过{max}", groups = {Add.class, Update.class})
    private String busTime;

    @ApiModelProperty("医生坐症")
    @Size(max = 2, message = "医生坐症长度超过{max}", groups = {Add.class, Update.class})
    private String hasDoc;

    @ApiModelProperty("区域")
    @Size(max = 20, message = "区域长度超过{max}", groups = {Add.class, Update.class})
    private String area;

    @ApiModelProperty("省份")
    @Size(max = 20, message = "省份长度超过{max}", groups = {Add.class, Update.class})
    private String prov;

    @ApiModelProperty("市")
    @Size(max = 20, message = "市长度超过{max}", groups = {Add.class, Update.class})
    private String city;

    @ApiModelProperty("国内排名")
    private Integer landRank;

    @ApiModelProperty("区域排名")
    private Integer areaRank;

    @ApiModelProperty("省排名")
    private Integer provRank;

    @ApiModelProperty("市级排名")
    private Integer cityRank;

    @ApiModelProperty("经度")
    @NotNull(message = "经度不能为空", groups = {Add.class, Update.class})
    private Double lng;

    @ApiModelProperty("纬度")
    @NotNull(message = "纬度不能为空", groups = {Add.class, Update.class})
    private Double lat;

    @ApiModelProperty("地址")
    @Size(max = 500, message = "地址长度超过{max}", groups = {Add.class, Update.class})
    private String address;

    @ApiModelProperty("联系电话")
    @Size(max = 200, message = "联系电话长度超过{max}", groups = {Add.class, Update.class})
    private String linkPhone;

    @ApiModelProperty("服务项目")
    private String serviceItem;

    @ApiModelProperty("收费标准")
    private String rates;

    @ApiModelProperty("院内设施")
    private String facility;

    @ApiModelProperty("入住须知")
    private String roomNotes;

    @ApiModelProperty("标签")
    private String tags;

    @ApiModelProperty("机构性质(01-公办 02-民办)")
    @Size(max = 2, message = "机构性质长度超过{max}", groups = {Add.class, Update.class})
    private String property;

    @ApiModelProperty("机构类别(01-敬老院 02-老年公寓 03-福利院 04-疗养院 05-养老社区 06-居家养老 07-养老照料 08-护理院)")
    @Size(max = 2, message = "机构类别长度超过{max}", groups = {Add.class, Update.class})
    private String category;

    @ApiModelProperty("收费上限")
    private Double chargeUpper;

    @ApiModelProperty("收费下限")
    private Double chargeFloor;

    @ApiModelProperty("特色服务(01-医保定点 02-候鸟旅居 03-异地收住 04-认证优先 05-品牌连锁 06-试住体验)")
    @Size(max = 2, message = "特色服务长度超过{max}", groups = {Add.class, Update.class})
    private String specService;

    @ApiModelProperty("收住对象(01-自理 02-半自理)")
    @Size(max = 200, message = "收住对象长度超过{max}", groups = {Add.class, Update.class})
    private String admittedType;

    @ApiModelProperty("占地面积")
    @Size(max = 200, message = "占地面积长度超过{max}", groups = {Add.class, Update.class})
    private String floorSpace;

    @ApiModelProperty("建筑面积")
    @Size(max = 200, message = "建筑面积长度超过{max}", groups = {Add.class, Update.class})
    private String buildSpace;

    @ApiModelProperty("成立时间")
    @Size(max = 20, message = "成立时间长度超过{max}", groups = {Add.class, Update.class})
    private String setUpTime;

    @ApiModelProperty("床位数")
    private Integer bedNum;

    @ApiModelProperty("发布人")
    private Long publisher;

    @ApiModelProperty("状态 00未发布01已发布")
    @NotEmpty(message = "状态00未发布01已发布不能为空", groups = {Add.class, Update.class})
    @Size(max = 2, message = "状态00未发布01已发布长度超过{max}", groups = {Add.class, Update.class})
    private String publishStatus;

    @ApiModelProperty("人气值")
    private Integer rank;

    @ApiModelProperty("发布时间")
    private Date publishTime;

    @ApiModelProperty("创建人")
    @NotNull(message = "创建人不能为空", groups = {Add.class, Update.class})
    private Long creSb;

    @ApiModelProperty("创建时间")
    @NotNull(message = "创建时间不能为空", groups = {Add.class, Update.class})
    private Date creTime;

    @ApiModelProperty("更新人")
    private Long uptSb;

    @ApiModelProperty("更新时间")
    private Date uptTime;

    @ApiModelProperty("删除标志")
    @NotEmpty(message = "删除标志不能为空", groups = {Add.class, Update.class})
    @Size(max = 2, message = "删除标志长度超过{max}", groups = {Add.class, Update.class})
    private String deleted;

}
